Software upgrades generally refer to the replacement of a current version of a software product with a newer version, and are typically performed to add new features to the software product or to correct problems or remove bugs with the current version.
When a user upgrades a software product to a newer version, existing scripts and programmatic customizations are often modified to conform to changes in a command-line interfaces (CLI) or application programming interface (API) of the software product. For example, consulting release notes are often used, where a user reads through the release notes to identify those changes made since the last release. The user can then apply those changes to an existing script. If an upgrade spans multiple releases, referred to as a non-sequential upgrade, information is compiled from several different sets of release notes.